// Generated from code/ch14v2/vecMath.g by ANTLR 4.9.0-SNAPSHOT


import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";

import * as Utils from "antlr4ts/misc/Utils";


export class vecMathLexer extends Lexer {
	public static readonly T__0 = 1;
	public static readonly T__1 = 2;
	public static readonly T__2 = 3;
	public static readonly T__3 = 4;
	public static readonly MULT = 5;
	public static readonly ADD = 6;
	public static readonly COMMA = 7;
	public static readonly ID = 8;
	public static readonly INT = 9;
	public static readonly WS = 10;

	// tslint:disable:no-trailing-whitespace
	public static readonly channelNames: string[] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
	];

	// tslint:disable:no-trailing-whitespace
	public static readonly modeNames: string[] = [
		"DEFAULT_MODE",
	];

	public static readonly ruleNames: string[] = [
		"T__0", "T__1", "T__2", "T__3", "MULT", "ADD", "COMMA", "ID", "INT", "WS",
	];

	private static readonly _LITERAL_NAMES: Array<string | undefined> = [
		undefined, "'='", "'print '", "'['", "']'", undefined, "'+'", "','",
	];
	private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
		undefined, undefined, undefined, undefined, undefined, "MULT", "ADD", 
		"COMMA", "ID", "INT", "WS",
	];
	public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(vecMathLexer._LITERAL_NAMES, vecMathLexer._SYMBOLIC_NAMES, []);

	// @Override
	// @NotNull
	public get vocabulary(): Vocabulary {
		return vecMathLexer.VOCABULARY;
	}
	// tslint:enable:no-trailing-whitespace


	constructor(input: CharStream) {
		super(input);
		this._interp = new LexerATNSimulator(vecMathLexer._ATN, this);
	}

	// @Override
	public get grammarFileName(): string { return "vecMath.g"; }

	// @Override
	public get ruleNames(): string[] { return vecMathLexer.ruleNames; }

	// @Override
	public get serializedATN(): string { return vecMathLexer._serializedATN; }

	// @Override
	public get channelNames(): string[] { return vecMathLexer.channelNames; }

	// @Override
	public get modeNames(): string[] { return vecMathLexer.modeNames; }

	public static readonly _serializedATN: string =
		"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\f8\b\x01\x04" +
		"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
		"\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x03\x02\x03\x02\x03" +
		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04\x03" +
		"\x05\x03\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03\t\x06\t," +
		"\n\t\r\t\x0E\t-\x03\n\x06\n1\n\n\r\n\x0E\n2\x03\v\x03\v\x03\v\x03\v\x02" +
		"\x02\x02\f\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02" +
		"\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x03\x02\x06\x04\x02,,00\x03" +
		"\x02c|\x03\x022;\x05\x02\f\f\x0F\x0F\"\"\x029\x02\x03\x03\x02\x02\x02" +
		"\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02" +
		"\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02" +
		"\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x03" +
		"\x17\x03\x02\x02\x02\x05\x19\x03\x02\x02\x02\x07 \x03\x02\x02\x02\t\"" +
		"\x03\x02\x02\x02\v$\x03\x02\x02\x02\r&\x03\x02\x02\x02\x0F(\x03\x02\x02" +
		"\x02\x11+\x03\x02\x02\x02\x130\x03\x02\x02\x02\x154\x03\x02\x02\x02\x17" +
		"\x18\x07?\x02\x02\x18\x04\x03\x02\x02\x02\x19\x1A\x07r\x02\x02\x1A\x1B" +
		"\x07t\x02\x02\x1B\x1C\x07k\x02\x02\x1C\x1D\x07p\x02\x02\x1D\x1E\x07v\x02" +
		"\x02\x1E\x1F\x07\"\x02\x02\x1F\x06\x03\x02\x02\x02 !\x07]\x02\x02!\b\x03" +
		"\x02\x02\x02\"#\x07_\x02\x02#\n\x03\x02\x02\x02$%\t\x02\x02\x02%\f\x03" +
		"\x02\x02\x02&\'\x07-\x02\x02\'\x0E\x03\x02\x02\x02()\x07.\x02\x02)\x10" +
		"\x03\x02\x02\x02*,\t\x03\x02\x02+*\x03\x02\x02\x02,-\x03\x02\x02\x02-" +
		"+\x03\x02\x02\x02-.\x03\x02\x02\x02.\x12\x03\x02\x02\x02/1\t\x04\x02\x02" +
		"0/\x03\x02\x02\x0212\x03\x02\x02\x0220\x03\x02\x02\x0223\x03\x02\x02\x02" +
		"3\x14\x03\x02\x02\x0245\t\x05\x02\x0256\x03\x02\x02\x0267\b\v\x02\x02" +
		"7\x16\x03\x02\x02\x02\x05\x02-2\x03\b\x02\x02";
	public static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!vecMathLexer.__ATN) {
			vecMathLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(vecMathLexer._serializedATN));
		}

		return vecMathLexer.__ATN;
	}

}

